package day2.about_mehtod;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
 * 测试方法join(): void	等待该线程结束
 */
public class Demo_join {
    private static class B extends Thread {
        @Override
        public void run() {
            // 模拟 B 要做很久的工作
            try {
                TimeUnit.SECONDS.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            println("B 说：我来给你送钱了");
        }
    }

    private static void println(String msg) {
        Date date = new Date();
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(format.format(date) + ": " + msg);
    }

    // join用法一
    public static void main(String[] args) throws InterruptedException {
        B b = new B();
        b.start();
        println("A 自己先去吃饭");
        // 有 join 和没有 join 的区别
        b.join(); //等待B线程的结束
        println("A 说：结完账了，咱们走人");
    }

    // join用法二
    public static void main2(String[] args) throws InterruptedException {
        B b2 = new B();
        b2.start();
        println("A 自己先去吃饭");
        b2.join(3000); //等待B线程的结束，但最多等3000ms
        println("A 说：我先走了，一会儿B来结账");
    }
}
